<?php
 
class ConfiguracionController extends Zend_Controller_Action
{
    
    public function init()
    {
        if (X\CheckAccess::Controller()) return;

        $this->em = Zend_Registry::getInstance()->entitymanager;
    }

    //---------------------------------//
    //             PAGINAS             //
    //---------------------------------//


    public function editarAction()
    {
        //if (X\CheckAccess::PageAction('Egreso de caja chica.crear')) return;

        try{
            // obtener los datos
            $this->view->configuraciones = $this->em->createQueryBuilder()
                        ->select         ('c')
                        ->from           ('Default_Model_Configuracion', 'c')
                        ->getQuery       ()
                        ->execute        ();

        }
        catch(Exception $e){
            $this->view->error = 'Error al cargar los datos.'.$e->getMessage();
        }
    }

    //---------------------------------//
    //               AJAX              //
    //---------------------------------//

    public function ajaxEditarAction()
    {
        //if (X\CheckAccess::AjaxAction($this, 'Egreso de caja chica.editar')) return;

        try{
            // obtener los parametros
            $directorGeneral        = $this->_request->getPost('directorGeneral');
            $directorAdministrativo = $this->_request->getPost('directorAdministrativo');
            $sedeRe                 = $this->_request->getPost('sedeRe');
            $sedeCa                 = $this->_request->getPost('sedeCa');
            
            // obtener los datos
            $configuraciones = $this->em->createQueryBuilder()
                        ->select         ('c')
                        ->from           ('Default_Model_Configuracion', 'c')
                        ->getQuery       ()
                        ->execute        ();

            foreach($configuraciones as $configuracion){
                switch ($configuracion->getNombreConfiguracion())
                {
                    case 'Director Gral':           $configuracion->setValorConfiguracion($directorGeneral); break;
                    case 'Director Administrativo': $configuracion->setValorConfiguracion($directorAdministrativo); break;
                    case 'SedeRe':                  $configuracion->setValorConfiguracion($sedeRe); break;
                    case 'SedeCa':                  $configuracion->setValorConfiguracion($sedeCa); break;
                }
                $this->em->persist($configuracion);
                $this->em->flush();
            }

            X\Msg::Success('Las configuraciones se han guardado con éxito.');
        }
        catch(Exception $e){
            X\Msg::Failure('Error al guardar las configuraciones.');
        }
    }
}